-
Notifications
You must be signed in to change notification settings - Fork 992
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
meta/sql: improve MySQL/PostgreSQL meta concurrency #5460
Conversation
1, Optimize the ForUpdate call of doMknod/Link/Unlink/Rmdir/Rename operation 2, Change nlink operation from "Nlink = ?" to "nlink = nlink + (?)" for atomic 3, Move the parent update operation to the end of transaction 4, Remove txLock for MySQL/PostgreSQL meta engine
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #5460 +/- ##
===========================================
- Coverage 33.33% 21.42% -11.91%
===========================================
Files 165 29 -136
Lines 47522 19009 -28513
===========================================
- Hits 15842 4073 -11769
+ Misses 29802 14453 -15349
+ Partials 1878 483 -1395 ☔ View full report in Codecov by Sentry. |
One question, when use EAGAIN to retry the transaction, some test cases failed. (I already know the root cause, it's due to EAGAIN is widely used in MySQL communication, and the errno is not reset always) After switch to EBUSY, all test cases passed, still need to evaluate is it ok to use EBUSY here. |
1, Optimize the ForUpdate call of doMknod/Link/Unlink/Rmdir/Rename operation
2, Change nlink operation from "Nlink = ?" to "nlink = nlink + (?)" for atomic
3, Move the parent update operation to the end of transaction
4, Remove txLock for MySQL/PostgreSQL meta engine